home *** CD-ROM | disk | FTP | other *** search
/ PCMania 73 / PCMania CD73_1.iso / sharewar / varios / partial / REGALOS / VIRUS / FUNCION.TXT < prev    next >
Text File  |  1996-01-05  |  8KB  |  232 lines

  1.                  ---- FUNCIONES TRATADAS EN EL ARTICULO ----
  2.  
  3. Este artículo va destinado a todos aquellos que no dispongan de
  4. información de las funciones utilizadas en este artículo. La explicación
  5. de las funciones está sacada del Pc-Interno:
  6.  
  7. -------------------------- INTERRUPCION  21H ------------------------------
  8.  
  9. Función 4ch, Int 21h  ( Terminar programa con código de fin )
  10. --------------------
  11.  
  12. Mediante esta función se finaliza un programa.
  13. La memoria RAM, que ocupa el programa, es liberada después de esta
  14. función, de modo que se puede volver a asignar a otros programas
  15.  
  16. Entrada:
  17.            AH= 4ch
  18.            AL= codigo de fin
  19.  
  20. Salida     No tiene
  21.  
  22. Codigo de fin ->   0: Fin normal
  23.                    1: Fin por aparecer un carácter Control-C o activación de la
  24.                       tecla Interr
  25.                    2: Por error al acceder a un dispositivo
  26.                    3: Por llamada a la función 31h o int 27h 
  27.  
  28. Antes de pasar el control al programa invocador, se cierran todos los Handles
  29. que fueron abiertos por este programa, y los archivos asociados con ellos.
  30. Esto sin embargo no se aplica a archivos que se abrieron mediante FCB.
  31.  
  32.  
  33.  
  34. Función 2a, Int 21h  ( Obtener fecha )
  35. --------------------
  36.  
  37. Mediante este función se obtiene la fecha actual del sistema.
  38.  
  39. Entrada:
  40.            AH= 2ah
  41.            
  42.  
  43. Salida     AL = Dia de la semana ( Domingo=0, Lunes=1 ... )
  44.            CX = año
  45.            DH = mes
  46.            DL = dia
  47.  
  48.  
  49. Función 09h, Int 21h  ( Salida de una cadena de caracteres )
  50. --------------------
  51.  
  52. Mediante la llamada de esta función se envía una cadena de caracteres en
  53. el dispositivo estándar de salida, por ejemplo el monitor.
  54.  
  55. Entrada   AH=09h
  56.           DS:DX= Puntero FAR sobre la cadena de caracteres
  57.  
  58. Salida    No tiene
  59.  
  60. La cadena de caracteres ha de estar guardada en la memoria como una
  61. secuencia de bytes, que contienen el código ASCII del carácter a enviar.
  62. El final de la cadena de caracteres se le señaliza al DOS con un carácter $
  63. ( código ASCII 36 )
  64.  
  65.  
  66. Función 4eh, Int 21h  ( Busca primera entrada de directorio )
  67. --------------------
  68.  
  69. Esta función busca un archivo determinado, además como se puede indicar
  70. en CX el atributo determinado, también se puede buscar subdirectorios y
  71. etiquetas de volumen
  72.  
  73. Entrada AH=4eh
  74.         CX= Atributo del archivo 
  75.         DS:DX= Puntero FAR al buffer con el nombre de archivo
  76.  
  77. Salida  Si no problema, flag de acarreo a 0
  78.         Si el flag de acarreo a 1: Error, en este caso
  79.                              AX: Código de error
  80.                               2: directorio no encontrado
  81.                               18: no se encontró archivo con el atributo
  82.                                   indicado
  83.  
  84. Función 4fh, Int 21h  ( Busca siguiente entrada de directorio )
  85. --------------------
  86.  
  87. La diferencia con la anterior es la siguiente:
  88.  
  89. A la entrada se carga en AH=4fh y en la salida si el flag de acarreo está
  90. a 1 en AX se pasa el valor 18, que indica que no se encontraron más
  91. archivos con el atributo indicado.
  92.  
  93. En CX en estas dos últimas funciones se indica el atributo en cuestión
  94. según la siguiente tabla:
  95.  
  96. Número de Bit           Significado
  97. --------------         -------------
  98.         0               Fichero de sólo lectura
  99.         1               Fichero oculto
  100.         2               Fichero de sistema
  101.         3               Etiqueta de volumen
  102.         4               Subdirectorio
  103.         5               Fichero sin archivar
  104.  
  105.  
  106. Los archivos normales se buscan con el atributo 0. Si se colocan diferentes
  107. bits en el campo de atributos, no solo se buscan los archivos especificados,
  108. sino también todos los normales.
  109.  
  110. Función 3dh, Int 21h  ( Abre Archivo (Handle) )
  111. --------------------
  112. Mediante esta función se abre un fichero ya existente.
  113.  
  114. Entrada     AH=3dh
  115.             AL= Modo de Acceso
  116.  
  117.             Bit 0-2: Permiso de lectura / escritura
  118.  
  119.                      000b = Archivo sólo puede ser leido
  120.                      001b = Sólo puede ser escrito
  121.                      010b = Puede ser leido y escrito
  122.  
  123.             Bit 3:   0b
  124.  
  125.             Bit 4-6: File-Sharing-Mode
  126.  
  127.                      000b= solo el programa actual puede acceder al archivo ( Compatibility-Mode)
  128.                      001b= solo el programa actual puede acceder al archivo
  129.                      010b= otro programa puede leer el archivo, pero no escribirlo
  130.                      011b= otro programa puede escribir el archivo, pero no leerlo
  131.                      100b= otro programa puede leer y escribir el archivo
  132.  
  133.             Bit 7: Handle-Flag
  134.  
  135.                      0= también el programa hijo del programa actual puede acceder al Handle del archivo
  136.                      1= solo el programa actual puede acceder al handle del archivo.
  137.  
  138.             DS:DX= Puntero FAR al nombre de archivo
  139.  
  140. Salida     Flag de Acarreo=0  O.K
  141.            Flag de Acarreo=1  Error, en este caso
  142.                            AX = código de error
  143.                              1: falta software de compartición de archivos
  144.                              2: archivo no se encontró
  145.                              3: directorio no encontrado archivo no existe
  146.                              4: no quedan Handles-libres
  147.                              5: Acceso Denegado
  148.                              12: Modo de acceso no permitido
  149.  
  150. Función 3eh, Int 21h  ( Cerrar Archivo (Handle) )
  151. --------------------
  152.  
  153. Con esta función se cierra un archivo abierto anteriormente.
  154.  
  155. Entrada   AH=3eh
  156.           BX= Handle a cerrar
  157.  
  158. Salida    Flag de Carry=0 O.K
  159.           Flag de Carry=1: Error, en este caso
  160.                             AX=6; Handle no permitido, o archivo asociado
  161.                             no está abierto
  162.  
  163.  
  164. Función 3fh, Int 21h  ( Leer Archivo (Handle) )
  165. --------------------
  166.  
  167. Mediante esta función se lee una cantidad determinada de bytes de un fichero
  168. abierto anteriormente, estos bytes pueden ser almacenados en un buffer.
  169.            
  170. Entrada   AH=3fh
  171.           BX= Handle del archivo o del dispositivo
  172.           CX=Numero de bytes a leer
  173.           DS:DX=Puntero FAR al buffer
  174.  
  175. Salida    Si carry-flag=1, Error en este caso
  176.                         AX= codigo de error
  177.                          5: Acceso Denegado
  178.                          6: Handle no permitido o archivo no abierto
  179.           Si carry-flag=0 O.K
  180.                         AX=Número de bytes leidos
  181.  
  182. Función 42h, Int 21h  ( Mover puntero de un archivo (Handle) )
  183. --------------------
  184.  
  185. Mediante esta función se consigue un acceso aleatorio al archivo, ya que los
  186. diferentes campos de datos ya no se han de leer en orden secuencial.
  187.  
  188. Entrada AH=42h
  189.         AL= Codigo de offset
  190.             0= Se refiere al principio del archivo
  191.             1= Se refiere a la posición del puntero de archivo
  192.             2= Se refiere al final del archivo
  193.         BX= Handle
  194.         CX= HI-WORD del offsets
  195.         DX= LO-WORD del offsets
  196.  
  197. Salida  CF (carry flag) =0 O.K
  198.  
  199.                          DX= HI-WORD del puntero de archivo
  200.                          AX= LO-WORD del puntero de archivo
  201.  
  202.         CF=1 , en AX= codigo error
  203.                      1: codigo de offset no permitido
  204.                      6: Handle no permitido o archivo no abierto
  205.  
  206.  
  207. Función 40h, Int 21h  ( Escribir archivo (Handle) )
  208. --------------------
  209.  
  210. Se escribe un número determinado de bytes en un archivo abierto anteriormente
  211. desde un buffer.
  212.  
  213. Entrada  AH=40h
  214.          BX= Handle del archivo o del dispositivo
  215.          CX= Cantidad de bytes a escribir
  216.          DS:DX= Puntero FAR al buffer
  217.  
  218. Salida   CF=0 O.K
  219.          CF=1, Error en AX= codigo de error
  220.                    5: Acceso denegado
  221.                    6: Handle no permitido o archivo no abierto
  222.  
  223.  
  224. Se dará cuenta que mostramos información de todas las funciones a las que
  225. hemos tenido acceso, sin embargo si de verdad le gusta la programación, le
  226. aconsejo que se haga pronto con algún manual que haga referencia de las
  227. interrupciones del DOS, como las del Pc-Interno, o cualquier guía que podaís
  228. encontrar por ahí, porque sinceramente este tipo de ficheros son un poco
  229. aburridos de escribir.
  230.                      
  231.                                                                    HANDLER     
  232.